package com.nexgo.payment.trans.setting;

import com.nexgo.payment.BasePresenter;
import com.nexgo.payment.BaseView;
import com.nexgo.payment.databases.PasswordInfo;

import java.util.List;
import java.util.Map;

/**
 * Created by xiaox on 2017/1/12.
 */

public interface SaveParameterContract {
    interface View extends BaseView<Presenter> {

        /**
         * 显示数据
         */
        void showDetail();

        /**
         * 提示信息
         *
         * @param tip 描述
         */
        void showTip(String tip);

        /**
         * 显示输入安全密码弹出层
         */
        void showInputSecurityPassword();

        /**
         * 提示保存成功
         */
        void showSaveParamSuccessfully();

        /**
         * 提示需要先结算
         */
        void showNeedSettle();
    }

    interface Presenter extends BasePresenter {

        /**
         * 保存参数
         *
         * @param paramData 参数信息列表
         */
        void saveParams(Map<String, String> paramData);

        /**
         * 判断安全密码
         *
         * @param password 密码
         */
        void judgeSecurityPassword(String password);

        /**
         * 根据参数名称获取对应的值信息
         *
         * @param preferencesId 参数名称
         * @return 返回值
         */
        String getParamValue(String preferencesId);

        /**
         * 根据参数名称设置其对应的值信息
         *
         * @param preferencesId 参数名称
         * @param value 对应的值
         */
        void setParamValue(String preferencesId, String value);

        /**
         * 同步信息（保存到文件）
         */
        void syncParamValue();

        /**
         * 清除流水记录
         */
        void clearVoucherRecord();

        /**
         * 清除冲正记录
         */
        void clearReversalRecord();

        /**
         * 获取密码信息
         *
         * @return 返回获取到的密码信息
         */
        PasswordInfo getPasswordInfo();

        /**
         * 编辑保存密码
         *
         * @param key
         * @param values
         */
        void savePassword(String key, List<String> values);
    }
}
